/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package redinftel.sesiones;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import redinftel.entidades.Perfil;

/**
 * Clase para el manejo de datos de la entidad Perfil.
 * @author Six Degrees Team
 */
@Stateless
public class PerfilFacade extends AbstractFacade<Perfil> implements PerfilFacadeRemote {
    @PersistenceContext(unitName = "redinftel-ejbPU")
    private EntityManager em;

    protected EntityManager getEntityManager() {
        return em;
    }

    public PerfilFacade() {
        super(Perfil.class);
    }

    @Override
    public List<Perfil> findByNombreOrApellido(String cadena) {
        String[] aux=new String[2];
        if(cadena.contains(" ")){
           aux = cadena.split(" ");
        }
        return (em.createQuery("SELECT p FROM Perfil p WHERE"
                + " (UPPER(p.apellidos) LIKE ?3) OR (UPPER(p.nombre) LIKE ?3) OR"
                + " (UPPER(p.apellidos) LIKE ?1) OR (UPPER(p.nombre) LIKE ?1) OR"
                + " (UPPER(p.apellidos) LIKE ?2) OR (UPPER(p.nombre) LIKE ?2)").
                 setParameter(1,"%"+aux[0]+"%").setParameter(2,"%"+aux[1]+"%")
                 .setParameter(3, "%"+cadena+"%").getResultList());
    }
}
